установка приложения для ноутбука
Была задача в процессе установки операционной системы инсталлировать приложение, только если компьютер является ноутбуком. Все приложения я вынес в первый шаг последовательности задач, а установку приложения для VPN-соединений — во второй. В качестве условия указываем WMI-запрос Select * from Win32_Battery where Batterystatus > 0:
Жень, приеду на работу, я тебе напишу тут какой класс и какое значение отвечает за форм-фактор.
http://msdn.microsoft.com/en-us/library/aa394474(v=vs.85).aspx
Из таблицы видно, что нам нужны 8, 9, 10 и 14:
Select * from Win32_SystemEnclosure Where ChassisTypes = 8 or ChassisTypes = 9 or ChassisTypes = 10 or ChassisTypes = 14
Да, можно и так. Оба решения верны.
Когда — то давно стояла аналогичная задача, использовал Win32_SystemEnclosure, далее заказчик настоял на использовании Win32_Battery и первое во, что мы впоролись — UPS 🙂 , что, собственно, и написано на TechNet
«•Win32_Battery or Win32_PortableBattery. If any instances exist, then the computer is probably a laptop. However, uninterruptible power supplies sometimes are reported as batteries, so this might not be reliable if some of your computers have uninterruptible power supplies. This class is defined in the SMS_def.mof, but reporting is not enabled by default.»
technet.microsoft.com/en-us/library/cc180825.aspx
Лично я бы использовал Win32_SystemEnclosure
Ниже вон Вовка говорит, что не взлетает.
Со скриптами всё взлетает 🙂
Ты про MDT или про ссылку ниже?
Короче,мой WMI запрос также не работает, т.к. ChassisTypes возвращает массив. Т.к. задача совершенно не новая, то на просторах интернета полно скриптов:
Вот наиболее приемлемый способ http://blog.itminutes.net/?p=254
В этом же блоге написано, что у MDT уже есть встроенные переменные ISDESKTOP и ISLAPTOP, которые возвращают true или false.
MDT в среде есть, но вертится отдельно. Интегрировать их я не буду.